////https://www.luogu.com.cn/problem/P1596
//
//#include<iostream>
//
//using namespace std;
//
//const int N = 110;
//int fa[N * N];
//int n, m;
//char x[N][N];
//int dx[] = { 0,1,1,1 };
//int dy[] = { 1,1,0,-1 };
//
//int find(int x)
//{
//	if (fa[x] == x) return x;
//	else return fa[x] = find(fa[x]);
//}
//
//void un(int x, int y)
//{
//	fa[find(x)] = find(y);
//}
//
//int main()
//{
//	cin >> n >> m;
//	for (int i = 0; i < n; i++)
//		for (int j = 0; j < m; j++)
//			fa[i * m + j] = i * m + j;
//	for (int i = 0; i < n; i++)
//		cin >> x[i];
//	for (int i = 0; i < n; i++)
//		for (int j = 0; j < m; j++)
//			if (x[i][j] == 'W')
//				for (int k = 0; k < 4; k++)
//					if (x[i + dx[k]][j + dy[k]] == 'W')
//						un(i * m + j, (i + dx[k]) * m + j + dy[k]);
//	int ret = 0;
//	for(int i=0;i<n;i++)
//		for (int j = 0; j < m; j++)
//			if (x[i][j] == 'W' && fa[i * m + j] == i * m + j)
//				ret++;
//	cout << ret << endl;
//	return 0;
//}